#include "MenuPedido.h"

#include "ConstantesGlobais.h"
#include "Funcoes.h"
#include "Mensagens.h"
#include<iostream>
#include<conio.h>

using namespace std;
using namespace entregadepedidos::util::funcoes;
using namespace entregadepedidos::util::global;

const char* ENDERECO_PEDIDO_ATENDIDOS_DAT = "Arquivos/Arquivos Entrada/PedidosAtendidos.dat";
const char* ENDERECO_PEDIDOS_PENDENTES_DAT = "Arquivos/Arquivos Entrada/PedidosPendentes.dat";
const int qtdPedidosDat = 5;

namespace entregadepedidos{

	namespace entidades{
	
		namespace submenu{

		//Construtor
		
				MenuPedido::MenuPedido(const int &numeroItens): Menu(numeroItens){}
					
				MenuPedido::~MenuPedido(){}
				
				void MenuPedido::getOpcao() throw(MenuPedidoException){
					char selectMenu;
					
					try{
					
					do{
					
					imprime();
					
					selectMenu=getch();
								
					switch(selectMenu){	
					
								case '1':
									Opcao1();
									break;
									
								case '2':		
									Opcao2();
									break;
								
								case '3':
									break;
																					
								default: 
									
									cout << endl << Mensagens::GET_MENU_OPCAO_INVALIDA();
									
									// Metodo para pausar o programa
									Funcoes::pausarPrograma();
								
								}
								
							}while(selectMenu!='3');
					
					}catch(FuncoesException ex){
						throw MenuPedidoException(ex.what(), ex.getDescricao());	
					}catch(...){
						throw MenuPedidoException(ConstantesGlobais::GET_ERRO(),Mensagens::GET_MENUPEDIDO_GETOPCAO_ERRO());
					}		
							
				}
				
				void MenuPedido::Opcao1()const throw(MenuPedidoException){
					
					try{
					/*	fstream arq("Clientes.dat", ios::in);
	Vetor<Cliente> lista;
	Cliente clt;
	string str;
	getline(arq,str); // pula a primeira linha!!!
	while( !arq.eof() )
	{
		getline(arq, str, ';');
		clt.SetCodigo(str); // Codigo
		getline(arq, str, ';');
		clt.SetSenha(str); // Senha
		getline(arq, str, ';');
		clt.SetEmail(str); // Email
		getline(arq, str, ';');
		clt.SetNome(str); // Nome
		getline(arq, str, ';');
		clt.SetEndereco(str); // Endereco
		getline(arq, str, ';');
		clt.SetBairro(str); // Bairro
		getline(arq, str, ';');
		clt.SetTelefone(str); // Telefone
		getline(arq,str);
		cout << clt << endl;	
	}*/
						cout << endl << "teste menu1";
						// Metodo para pausar o programa
						Funcoes::pausarPrograma();						
					
					}catch(FuncoesException ex){
						throw MenuPedidoException(ex.what(), ex.getDescricao());	
					}catch(...){
						throw MenuPedidoException(ConstantesGlobais::GET_ERRO(),Mensagens::GET_MENUPEDIDO_OPCAO1_ERRO());
					}	
				}
				
				void MenuPedido::Opcao2()const throw(MenuPedidoException){
					try{
						
						/*fstream arq("Clientes.dat", ios::in);
						Vetor<Cliente> lista;
						Cliente clt;
						string str;
						getline(arq,str); // pula a primeira linha!!!
						while( !arq.eof() )
						{
							getline(arq, str, ';');
							clt.SetCodigo(str); // Codigo
							getline(arq, str, ';');
							clt.SetSenha(str); // Senha
							getline(arq, str, ';');
							clt.SetEmail(str); // Email
							getline(arq, str, ';');
							clt.SetNome(str); // Nome
							getline(arq, str, ';');
							clt.SetEndereco(str); // Endereco
							getline(arq, str, ';');
							clt.SetBairro(str); // Bairro
							getline(arq, str, ';');
							clt.SetTelefone(str); // Telefone
							getline(arq,str);
							cout << clt << endl;	
						}*/
						cout << endl << "teste menu2";
						// Metodo para pausar o programa
						Funcoes::pausarPrograma();						
									
					}catch(FuncoesException ex){
						throw MenuPedidoException(ex.what(), ex.getDescricao());	
					}catch(...){
						throw MenuPedidoException(ConstantesGlobais::GET_ERRO(),Mensagens::GET_MENUPEDIDO_OPCAO2_ERRO());
					}
				}		

		}
		
	}
	
}
